﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Prueba.Model
{
    public class Recurso:ModelBase
    {
        public string RecursoId
        {
            get { return _RecursoId; }
            set
            {
                if (_RecursoId != value)
                {
                    _RecursoId = value;
                    OnPropertyChanged(RecursoIdPropertyName);
                }
            }
        }
        private string _RecursoId;
        public const string RecursoIdPropertyName = "RecursoId";

        public string RecursoName
        {
            get { return _RecursoName; }
            set
            {
                if (_RecursoName != value)
                {
                    _RecursoName = value;
                    OnPropertyChanged(RecursoNamePropertyName);
                }
            }
        }
        private string _RecursoName;
        public const string RecursoNamePropertyName = "RecursoName";

        public Iniciativa Iniciativa
        {
            get { return _Iniciativa; }
            set
            {
                if (_Iniciativa != value)
                {
                    _Iniciativa = value;
                    OnPropertyChanged(IniciativaPropertyName);
                }
            }
        }
        private Iniciativa _Iniciativa; 
        public const string IniciativaPropertyName = "Iniciativa";

        public int TiempoImplementacion
        {
            get { return _TiempoImplementacion; }
            set
            {
                if (_TiempoImplementacion != value)
                {
                    _TiempoImplementacion = value;
                    OnPropertyChanged(TiempoImplementacionPropertyName);
                }
            }
        }
        private int _TiempoImplementacion;
        public const string TiempoImplementacionPropertyName = "TiempoImplementacion";

        public int VisitasSugeridas
        {
            get { return _VisitasSugeridas; }
            set
            {
                if (_VisitasSugeridas != value)
                {
                    _VisitasSugeridas = value;
                    OnPropertyChanged(VisitasSugeridasPropertyName);
                }
            }
        }
        private int _VisitasSugeridas;
        public const string VisitasSugeridasPropertyName = "VisitasSugeridas";

        public bool ExcluirReglaIniciativa
        {
            get { return _ExcluirReglaIniciativa; }
            set
            {
                if (_ExcluirReglaIniciativa != value)
                {
                    _ExcluirReglaIniciativa = value;
                    OnPropertyChanged(ExcluirReglaIniciativaPropertyName);
                }
            }
        }
        private bool _ExcluirReglaIniciativa;
        public const string ExcluirReglaIniciativaPropertyName = "ExcluirReglaIniciativa";

        public bool ExcluirReglaRecurso
        {
            get { return _ExcluirReglaRecurso; }
            set
            {
                if (_ExcluirReglaRecurso != value)
                {
                    _ExcluirReglaRecurso = value;
                    OnPropertyChanged(ExcluirReglaRecursoPropertyName);
                }
            }
        }
        private bool _ExcluirReglaRecurso;
        public const string ExcluirReglaRecursoPropertyName = "ExcluirReglaRecurso";

        public int IndTiempoImplementacion
        {
            get { return _IndTiempoImplementacion; }
            set
            {
                if (_IndTiempoImplementacion != value)
                {
                    _IndTiempoImplementacion = value;
                    OnPropertyChanged(IndTiempoImplementacionPropertyName);
                }
            }
        }
        private int _IndTiempoImplementacion;
        public const string IndTiempoImplementacionPropertyName = "IndTiempoImplementacion";

        public int IndVisitasSugeridas
        {
            get { return _IndVisitasSugeridas; }
            set
            {
                if (_IndVisitasSugeridas != value)
                {
                    _IndVisitasSugeridas = value;
                    OnPropertyChanged(IndVisitasSugeridasPropertyName);
                }
            }
        }
        private int _IndVisitasSugeridas;
        public const string IndVisitasSugeridasPropertyName = "IndVisitasSugeridas";

        public int IndTotalRecursos
        {
            get { return _IndTotalRecursos; }
            set
            {
                if (_IndTotalRecursos != value)
                {
                    _IndTotalRecursos = value;
                    OnPropertyChanged(IndTotalRecursosPropertyName);
                }
            }
        }
        private int _IndTotalRecursos;
        public const string IndTotalRecursosPropertyName = "IndTotalRecursos";

        public int MaxRecursos
        {
            get { return _MaxRecursos; }
            set
            {
                if (_MaxRecursos != value)
                {
                    _MaxRecursos = value;
                    OnPropertyChanged(MaxRecursosPropertyName);
                }
            }
        }
        private int _MaxRecursos;
        public const string MaxRecursosPropertyName = "MaxRecursos";

        public int MaxIniciativas
        {
            get { return _MaxIniciativas; }
            set
            {
                if (_MaxIniciativas != value)
                {
                    _MaxIniciativas = value;
                    OnPropertyChanged(MaxIniciativasPropertyName);
                }
            }
        }
        private int _MaxIniciativas;
        public const string MaxIniciativasPropertyName = "MaxIniciativas";

        public bool IsMaximoAsignadoEx
        {
            get { return _IsMaximoAsignadoEx; }
            set
            {
                if (_IsMaximoAsignadoEx != value)
                {
                    _IsMaximoAsignadoEx = value;
                    OnPropertyChanged(IsMaximoAsignadoExPropertyName);
                }
            }
        }
        private bool _IsMaximoAsignadoEx;
        public const string IsMaximoAsignadoExPropertyName = "IsMaximoAsignadoEx";

        public int MaxAsignado
        {
            get { return _MaxAsignado; }
            set
            {
                if (_MaxAsignado != value)
                {
                    _MaxAsignado = value;
                    OnPropertyChanged(MaxAsignadoPropertyName);
                }
            }
        }
        private int _MaxAsignado;
        public const string MaxAsignadoPropertyName = "MaxAsignado";

        public int? FilterCantidad
        {
            get { return _FilterCantidad; }
            set
            {
                if (_FilterCantidad != value)
                {
                    _FilterCantidad = value;
                    OnPropertyChanged(FilterCantidadPropertyName);
                }
            }
        }
        private int? _FilterCantidad;
        public const string FilterCantidadPropertyName = "FilterCantidad";

        public Recurso()
        {
            this._IsMaximoAsignadoEx = false;
        }
    }
}
